/*
 * @lc app=leetcode.cn id=350 lang=cpp
 *
 * [350] 两个数组的交集 II
 */

// @lc code=start
class Solution
{
public:
    vector<int> intersect(vector<int> &nums1, vector<int> &nums2)
    {
        //找出两个数组的交集 可以重复
        //主要是用什么思路去解决 额如果用之前的set的话 重复元素就不行了
        //如果是map的话应该还可以
        unordered_map<int, int> a;
        vector<int> res;
        for (int i = 0; i < nums1.size(); i++)
        {
            a[nums1[i]]++;
        }
        for (int i = 0; i < nums2.size(); i++)
        {
            if (a[nums2[i]])
            {
                res.emplace_back(nums2[i]);
                a[nums2[i]]--;
            }
        }
        return res;
    }
};
// @lc code=end
